home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 07 (1982-03)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 07 (1982-03)(Softdisk)(Side B).do / QUILT.PROGRAM.bas < prev    next >
BASIC Source File  |  1996-12-24  |  5KB  |  112 lines

  1. 10  REM  FIGURE BLOCKS NEEDED FOR A QUILT
  2. 20  GOSUB 970: REM  DRAW PATTERN FOR COVER
  3. 30  TEXT 
  4. 40  REM  MENU
  5. 50  HOME : PRINT  TAB( 14);: INVERSE : PRINT "QUILT  PROGRAM": NORMAL : PRINT : PRINT 
  6. 60  CLEAR 
  7. 70  PRINT  TAB( 5)"1  FIGURE NUMBER OF BLOCKS": PRINT 
  8. 80  PRINT  TAB( 5)"2  FIGURE SIZE OF QUILT": PRINT 
  9. 90  PRINT  TAB( 5)"3  FIGURE SIZE OF BLOCK"
  10. 100  PRINT 
  11. 110  PRINT  TAB( 5)"4  FIGURE MATERIAL REQUIRED": PRINT 
  12. 120  PRINT  TAB( 5)"5  QUIT PROGRAM": PRINT 
  13. 130  INVERSE : PRINT "ENTER SELECTION NUMBER:";: NORMAL : GET A$:A =  VAL(A$): PRINT A
  14. 140  IF A <1  OR A >5  THEN  PRINT "NUMBER NOT ACCEPTABLE. TRY AGAIN.": PRINT : GOTO 130
  15. 150  ON A GOTO 170,400,600,770,160
  16. 160  END 
  17. 170  REM  FIGURE NUMBER OF BLOCKS FOR QIVEN SIZE QUILT
  18. 180  HOME 
  19. 190  PRINT "I WILL FIGURE THE NUMBER OF BLOCKS YOU  WILL NEED TO COMPLETE A GIVEN SIZE      QUILT. MAKE ALL ENTERIES IN INCHES."
  20. 200  PRINT : PRINT 
  21. 210  INPUT "SIZE OF QUILT BLOCK ";B: PRINT 
  22. 220  INPUT "LENGTH OF FINISHED QUILT ";L: PRINT 
  23. 230  INPUT "WIDTH OF FINISHED QUILT ";W: PRINT 
  24. 240 C =  INT(L/B): REM  # OF FULL BLOCKS LONG
  25. 250 E =  INT(W/B): REM  # OF FULL BLOCKS WIDE
  26. 260  PRINT 
  27. 270  PRINT "A QUILT ";L;" INCHES LONG BY ";W;" INCHES     WIDE WILL BE:"
  28. 280  PRINT  TAB( 3)C" BLOCKS LONG"
  29. 290  PRINT  TAB( 3)E" BLOCKS WIDE"
  30. 300  PRINT 
  31. 310  PRINT : PRINT  TAB( 3)"A TOTAL OF "C *E" BLOCKS WILL BE NEEDED."
  32. 320  PRINT 
  33. 330 J =  INT(L -(B *C)): IF J <1  THEN  PRINT  TAB( 3)"BORDER ON "L" INCH SIDE - 0 INCHES": GOTO 350
  34. 340  PRINT  TAB( 3)"BORDER ON ";L;" INCH SIDE - " INT(J/2);" INCHES."
  35. 350 K =  INT(W -(B *E)): IF K <1  THEN  PRINT  TAB( 3)"BORDER ON "W" INCH SIDE - 0 INCHES": GOTO 380
  36. 360  PRINT  TAB( 3)"BORDER ON ";W;" INCH SIDE - " INT(K/2);" INCHES."
  37. 370  PRINT 
  38. 380  VTAB 24: PRINT "PRESS RETURN TO CONTINUE";: GET A$
  39. 390  GOTO 50
  40. 400  REM  FIGURE SIZE OF QUILT
  41. 410  HOME 
  42. 420  PRINT "I WILL FIGURE THE SIZE OF QUILT GIVEN   THE QUILT BLOCK SIZE AND BED SIZE. MAKE ALL ENTERIES IN INCHES.": PRINT 
  43. 430  INPUT "SIZE OF QUILT BLOCK ";B: PRINT 
  44. 440  INPUT "LENGTH OF BED ";L: PRINT 
  45. 450  INPUT "WIDTH OF BED ";W: PRINT 
  46. 460 QL = L +17:QW = W +34: REM  ADDITIONAL INCHES FOR OVERHANG OF QUILT
  47. 470 C =  INT(QL/B):E =  INT(QW/B): REM  # OF FULL BLOCKS LONG AND WIDE
  48. 480  PRINT "A BED "L" INCHES LONG AND "W" INCHES      WIDE WILL NEED A QUILT:": PRINT 
  49. 490  PRINT  TAB( 3)QL" INCHES LONG"
  50. 500  PRINT  TAB( 3)QW" INCHES WIDE"
  51. 510  PRINT  TAB( 3)C *E" QUILT BLOCKS WILL BE NEEDED"
  52. 520  PRINT  TAB( 6)C" QUILT BLOCKS LONG"
  53. 530  PRINT  TAB( 6)E" QUILT BLOCKS WIDE"
  54. 540 J =  INT(QL -(B *C)): IF J <1  THEN  PRINT  TAB( 3)"BORDER ON "QL" INCH SIDE - 0 INCHES": GOTO 560
  55. 550  PRINT  TAB( 3)"BORDER ON "QL" INCH SIDE - " INT(J/2)" INCHES"
  56. 560 K =  INT(QW -(B *E)): IF K <1  THEN  PRINT  TAB( 3)"BORDER ON "QW" INCH SIDE - 0 INCHES": GOTO 580
  57. 570  PRINT  TAB( 3)"BORDER ON "QW" INCH SIDE - " INT(K/2)" INCHES"
  58. 580  VTAB 24: PRINT "PRESS RETURN TO CONTINUE";: GET A$: GOTO 50
  59. 590  REM  FIGURE # OF BLOCKS NEEDED
  60. 600  HOME 
  61. 610  PRINT "I WILL FIGURE THE SIZE OF BLOCKS NEEDED TO MAKE A GIVEN SIZE QUILT. I WILL EVEN TELL YOU IF YOU WILL HAVE A BORDER LEFT OVER ON EITHER LENGTH OR WIDTH."
  62. 620  PRINT : INPUT "LENGTH OF FINISHED QUILT ";L: PRINT 
  63. 630  INPUT "WIDTH OF FINISHED QUILT ";W: PRINT 
  64. 640  PRINT "PARDON ME WHILE I FIGURE THIS OUT.": FOR I = 1 TO 1000: NEXT 
  65. 650  HOME 
  66. 660  PRINT "QUILT "L" INCHES LONG BY "W" INCHES WIDE  WILL TAKE THE FOLLOWING NUMBER OF BLOCKSLEAVING A BORDER ON EACH SIDE AS SHOWN:": PRINT 
  67. 670  PRINT "SIZE"; TAB( 7)"# LONG"; TAB( 15)"# WIDE"; TAB( 22)"TOTAL"; TAB( 31)"BORDER"
  68. 680  PRINT  TAB( 29)"LGTH WIDTH"
  69. 690  FOR I = 1 TO 12
  70. 700  PRINT I" IN";
  71. 710 C =  INT(L/I):E =  INT(W/I):J =  INT(L -(I *C)):J =  INT(J/2):K =  INT(W -(I *C)):K =  INT(K/2)
  72. 720  PRINT  TAB( 10)C; TAB( 17)E; TAB( 22)C *E; TAB( 29)J"    "K
  73. 730  NEXT I
  74. 740  VTAB 24: PRINT "PRESS RETURN TO CONTINUE";: GET A$
  75. 750  GOTO 50
  76. 760  REM  FIGURE MATERIAL REQUIREMENTS
  77. 770  HOME 
  78. 780  PRINT "I WILL FIGURE THE AMOUNT OF FRABIC      REQUIRED TO MAKE A QUILT IF YOU WILL    GIVE ME SOME INFORMATION.": PRINT 
  79. 790  PRINT "WHEN GIVING SIZE OF BLOCK, ADD SEAM     ALLOWANCES AND ROUND UP TO THE NEXT     HIGHER INCH. A 4 INCH SQUARE BLOCK WITH .25 INCH SEAMS WOULD BE 5 INCHES WIDE   AND 5 INCHES LONG. THIS WILL ALLOW EXTRAFABRIC FOR RAGGED EDGES."
  80. 800  PRINT 
  81. 810  INPUT "LENGTH OF QUILT BLOCK ";BL: PRINT 
  82. 820  INPUT "WIDTH OF QUILT BLOCK ";BW: PRINT 
  83. 830  INPUT "NUMBER OF BLOCKS NEEDED ";NO: PRINT 
  84. 840  INPUT "WIDTH OF FABRIC ";FW: PRINT 
  85. 850 A =  INT(FW/BL)::A1 =  INT(FW/BW):
  86. 860 AR =  INT(FW -(A *BL)):AR1 =  INT(FW -(A1 *BW)): IF AR1 <AR  THEN A = A1:AW = BW: GOTO 890
  87. 870 AW = BL
  88. 880  REM  A=# BLOCKS ACROSS WIDTH D=# BLOCKS ACROSS LENGTH
  89. 890 RO =  INT(NO/A):FL = RO *AW:FL =  INT(FL/36) +.75
  90. 900  PRINT "TOTAL FABRIC NEEDED IS - ": PRINT  TAB( 5)FL" YARDS."
  91. 910  PRINT 
  92. 920  PRINT "DO YOU WANT TO FIGURE MORE YARDAGES? ";: GET X$: PRINT X$
  93. 930  IF X$ = "Y"  THEN  HOME : GOTO 810
  94. 940  IF X$ = "N"  THEN 50
  95. 950  PRINT : PRINT "PLEASE ANSWER 'YES' OR 'NO'.": PRINT : GOTO 920
  96. 960  REM  COVER PATTERN
  97. 970  HGR 
  98. 980  HOME 
  99. 990  HCOLOR= 1
  100. 1000  FOR I = 0 TO 158  STEP 8
  101. 1010  HPLOT 0,I TO 279,I
  102. 1020  NEXT 
  103. 1030  HPLOT 0,159 TO 279,159
  104. 1040  HPLOT 1,1 TO 1,159
  105. 1050  FOR I = 9 TO 279  STEP 9
  106. 1060  IF I = 9  THEN 1080
  107. 1070  HPLOT I,0 TO I,159
  108. 1080  NEXT 
  109. 1090  VTAB 24: PRINT  TAB( 7);: INVERSE : PRINT "Q U I L T  P R O G R A M": NORMAL 
  110. 1100  FOR I = 1 TO 1000: NEXT 
  111. 1110  TEXT 
  112. 1120  RETURN